package com.life.smile.dao;

import java.util.List;
import java.util.Map;

import com.life.smile.entity.RearMenu;
import com.life.smile.entity.Role;
import com.life.smile.entity.vo.RearMenuVo;
import com.life.smile.entity.vo.UserLoginLogVo;


public interface MenuMapper {

	/**
	 * 获取所有的菜单
	 * @return 
	 */
	List<RearMenuVo> getAllMenu();
	//异步加载菜单数据
	List<RearMenuVo> selectAllMenuList(Map<String, Object> pmap);
	int getMenuCount(Map<String, Object> pmap);
	/**
	  * 查询所有的1.2级目录，用于添加菜单页面的表单回填
	  * @return
	  */
	List<RearMenu> getParentMenu();

	/**
	 * 添加菜单
	 * @param m
	 */
	void createMenu(RearMenu m);

	/**
	 * 通过id查询到菜单的level
	 * @param parentid
	 * @return 
	 */
	int getMenuLevel(Integer parentid);

	/**
	 * 删除菜单
	 * @param mid 
	 */
	void menuDelete(Integer mid);

	/**
	 * 获取所有角色
	 * @return
	 */
	List<Role> getRoleList();

	/**
	 * 检查菜单是否存在
	 * @param url
	 * @return
	 */
	RearMenu checkMenu(String url);

	
	RearMenuVo getMenu(Integer mid);

	/**
	 * 菜单修改
	 * @param m
	 */
	void valueUpdata(RearMenu m);

	/**
	 * 查询所有的菜单列表
	 * @return
	 */
	List<RearMenu> searchMenuAll();

	/**
	 * 查询角色的菜单列表
	 * @param rid
	 * @return
	 */
	List<RearMenu> searchMenuByRoleId(Integer rid);

	/**
	 * 删除角色对应的菜单
	 * @param rid
	 */
	void deleRoleMenu(Integer rid);

	/**
	 * 设置角色菜单
	 * @param rid
	 * @param mid
	 */
	void setRoleMenu(Map<String, Integer> map);
	
	@SuppressWarnings("rawtypes")
	Map searchMenuByUser(Map<Object,Object> paraMap);

	/**
	 * 查询角色是否存在
	 * @param rname
	 * @return
	 */
	Role checkRole(String rname);

	/**
	 * 添加角色
	 * @param role
	 */
	void createRole(Role role);

	/**
	 * 删除角色
	 * @param rid
	 */
	void roleDelete(Integer rid);

	List<UserLoginLogVo> loginLogList(Map<String, Object> map);

	List<Role> getRoleName();

	Integer getCount(Map<String, Object> map);
	
}
